/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jjsoft.celularessuc.gco.neg;

import com.jjsoft.celularessuc.gco.dao.GenericController;
import com.jjsoft.celularessuc.gco.mdl.Diario;
import com.jjsoft.celularessuc.gco.mdl.Ingreso;
import com.jjsoft.celularessuc.gco.mdl.Usuario;
import java.util.Date;

/**
 *
 * @author Johnny
 */
public class DiarioManager {

    GenericController<Diario> controladorDiario = new GenericController<Diario>();

    public void crearDiario(Diario diario) {
        IngresoManager im = new IngresoManager();
        Ingreso ingreso = new Ingreso();
        ingreso.setConcepto("Apertura de caja");
        ingreso.setValor(diario.getValor());
        ingreso.setFecha(diario.getFecha());
        ingreso.setHora(diario.getFecha().toLocaleString().substring(diario.getFecha().toLocaleString().indexOf(" ")));
        ingreso.setNumDocumento(null);
        ingreso.setIdUsuario(diario.getIdUsuario());
        im.registrarIngreso(ingreso);
        controladorDiario.create(diario);

    }

    public void reabrirDiario(Diario diario) {
        IngresoManager im = new IngresoManager();
        Ingreso ingreso = new Ingreso();
        ingreso.setConcepto("Repertura de caja");
        ingreso.setValor(0d);
        Date d = new Date();
        ingreso.setFecha(d);
        ingreso.setHora(d.toLocaleString().substring(d.toLocaleString().indexOf(" ")));
        ingreso.setNumDocumento(null);
        ingreso.setIdUsuario(diario.getIdUsuario());
        im.registrarIngreso(ingreso);
        diario.setEstado(0);
        try {
            controladorDiario.edit(diario);
        } catch (Exception ex) {
            System.err.println(ex.getLocalizedMessage());
        }
    }

    public void editarDiario(Diario diario) {
        try {
            controladorDiario.edit(diario);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public void cierraDiario(Diario diario) {
        try {
            IngresoManager im = new IngresoManager();
            Ingreso ingreso = new Ingreso();
            ingreso.setConcepto("Cierre de caja");
            ingreso.setValor(0d);
            Date d = new Date();
            ingreso.setFecha(d);
            ingreso.setHora(d.toLocaleString().substring(d.toLocaleString().indexOf(" ")));
            ingreso.setNumDocumento(null);
            ingreso.setIdUsuario(diario.getIdUsuario());
            im.registrarIngreso(ingreso);
            diario.setEstado(1);
            controladorDiario.edit(diario);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public Diario buscaDiario(Usuario usuario, Date fecha) {
        try {

            String fec = fecha.getYear() + 1900 + "-" + (fecha.getMonth() + 1) + "-" + fecha.getDate();
            Diario diario = controladorDiario.findWhere(new Diario(), "fecha='" + fec + "'and idUsuario='" + usuario.getNick() + "'").get(0);
            return diario;
        } catch (Exception ex) {
            return null;
        }
    }
}
